// Copyright (C) Kumo inc. and its affiliates.
// Author: Jeff.li lijippy@163.com
// All rights reserved.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program.  If not, see <https://www.gnu.org/licenses/>.
//
#pragma once

namespace kumo::pollux::filesystems {

// The number of connections open for S3 read operations.
constexpr std::string_view kMetricS3ActiveConnections{
    "pollux.s3.active_connections"};

// The number of S3 upload calls that started.
constexpr std::string_view kMetricS3StartedUploads{"pollux.s3.started_uploads"};

// The number of S3 upload calls that were completed.
constexpr std::string_view kMetricS3SuccessfulUploads{
    "pollux.s3.successful_uploads"};

// The number of S3 upload calls that failed.
constexpr std::string_view kMetricS3FailedUploads{"pollux.s3.failed_uploads"};

// The number of S3 head (metadata) calls.
constexpr std::string_view kMetricS3MetadataCalls{"pollux.s3.metadata_calls"};

// The number of S3 head (metadata) calls that failed.
constexpr std::string_view kMetricS3GetMetadataErrors{
    "pollux.s3.get_metadata_errors"};

// The number of retries made during S3 head (metadata) calls.
constexpr std::string_view kMetricS3GetMetadataRetries{
    "pollux.s3.get_metadata_retries"};

// The number of S3 getObject calls.
constexpr std::string_view kMetricS3GetObjectCalls{"pollux.s3.get_object_calls"};

// The number of S3 getObject calls that failed.
constexpr std::string_view kMetricS3GetObjectErrors{
    "pollux.s3.get_object_errors"};

// The number of retries made during S3 getObject calls.
constexpr std::string_view kMetricS3GetObjectRetries{
    "pollux.s3.get_object_retries"};

} // namespace kumo::pollux::filesystems
